enum Permission{
    Read=1,  // 2^0 0001
    Write=2, // 2^1 0010
    Create=4,// 2^2 0100
    Delete=8 // 2^3 1000
}
// 如何组合权限
// 3 0011
// 位运算 或 
// 0001
// 或
// 0010
// 结果
// 0011

let p = Permission.Read| Permission.Write;

// 如何判断是否拥有权限
// 且运算 
// 0011
// &
// 0010
// 结果
// 0010
function hasPermission(target:Permission,per:Permission){
  return (target & per) == per
}
// 判断是否有可读权限
let falg = hasPermission(p,Permission.Read)
console.log(falg)
// 删除权限 ^ 异或运算 相同取0 不同取1
function delPermission(target:Permission,per:Permission){
    return  target^per 
}
p = delPermission(Permission.Read,p)
console.log(p)